// 这个animate函数是返回顶部的动画函数

function animate(obj, traget, callback) {
    // 开启定时器
    // 每次执行定时器之前先删除以前的定时器，只保留一个
    clearInterval(obj.timer);
    // 步长一般写在定时器里面
    // var step = Math.ceil((traget - obj.offsetLeft) / 10);
    // 最完美写法:
    obj.timer = setInterval(function () {
        var step = (traget - obj.pageYOffset) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.pageYOffset === traget) {
            clearInterval(obj.timer);
            /*  if (callback) {
                 callback();   
             } */
            //  等价于
            callback && callback(); // 如果左边为true就执行后面这个函数调用，如果为false就不执行
        } else {
            // 把每次加1这个步长值改为一个慢慢变小的值 步长公式:（目标值 - 现在的位置）/ 10
            // obj.style.left = obj.offsetLeft + 1 + 'px'; //匀速移动
            // obj.style.left = obj.offsetLeft + step + 'px'; //缓动效果
            // 这里不能用 left 直接给 window.scroll(x,y)赋值
            window.scroll(0, obj.pageYOffset + step); //缓动效果
        }
    }, 16)
}